import axios from 'axios' // 引入axios
axios.defaults.baseURL = 'http://localhost:8888/api/private/v1'
// 暴露成员 postLogin名字 obj参数    也可以这样写
export const postLogin = obj => {
  return axios.post('/login', obj)
    .then(res => res.data)
}

// 添加请求拦截器，会将所有的请求拦截下来
axios.interceptors.request.use(function (config) {
  // config表示请求对象
  // 将token给到一个前后台约定好的key中，作为请求发送
  // 先从本地取token的值，判断到底有没有token值，如果有就往headers里面塞token，如果没有就直接return
  let token = localStorage.getItem('mytoken') || ''
  if (token) {
    // 存在token就将token塞进请求头的某个字段中，这个字段名不能随便取，它是一个前后端约定好的字段名
    config.headers['Authorization'] = token
  }
  return config // 必须return出去这个请求对象
}, function (error) {
  // Do something with request error
  return Promise.reject(error)
})

// 用户数据列表接口
// 用户数据列表  可以这样写哦 简写
// getUserList = obj  标题=值
export const getUserList = obj => axios.get('/users', { params: obj }).then(res => res.data)

// 添加用户
export const getAddList = obj => axios.post('/users', obj).then(res => res.data)

// 删除用户
export const getDelList = id => axios.delete(`/users/${id}`).then(res => res.data)

// 编辑用户
export const getEditList = obj => axios.put(`/users/${obj.id}`, {
  email: obj.email, mobile: obj.mobile
}).then(res => res.data)

// 修改用户状态users/:uId/state/:type
export const getAlterList = (id, state) => axios.put(`/users/${id}/state/${state}`).then(res => res.data)

// 角色管理
export const getTubeList = () => axios.get('/roles').then(res => res.data)

// 分配用户角色
export const getAllocationList = (id, rid) => axios.put(`users/${id}/role`, {rid: rid}).then(res => res.data)

// 权限列表
export const getRightsList = type => axios.get(`rights/${type}`).then(res => res.data)

// 删除角色指定权限
export const getRoleDelList = (RightId, RoleId) => axios.delete(`roles/${RoleId}/rights/${RightId}`).then(res => res.data)

// 角色列表添加
// 添加用户
export const RoleAddList = obj => axios.post('/roles', obj).then(res => res.data)

// 删除角色
export const RoleDelList = id => axios.delete(`/roles/${id}`).then(res => res.data)

// 编辑角色
export const RoleEdtList = obj => axios.put(`/roles/${obj.id}`, {
  roleName: obj.roleName, roleDesc: obj.roleDesc
}).then(res => res.data)

// 商品列表数据
export const getgoodsList = obj => axios.get('/goods', { params: obj }).then(res => res.data)
